/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AbstractFactory;

/**
 *  Fourni une Factory selon le system d'exploitation
 * @author David
 */
public class AbstractFactory {
    
    /**
     * Enumération pour spécifier l'OS
     */
    public enum OS{
        Windows(0),Linux(1),Mac(2);
        int num;
        
        OS(int num){
            this.num = num;
        }
        
    }
    
    public AbstractFactory(){}
    //TODO il est préférable d'aller regarder dans des fichier de config l'os
    /**
     * @param s 
     * @return 
     */
    public MainFactory creerFactory(OS os){
        if(os.equals(OS.Windows))
            return new FactoryWindows();
        if(os.equals(OS.Linux))
            return new FactoryLinux();
        if(os.equals(OS.Mac)) 
            return new FactoryMac();
      return null;      
    }
    
}
